// 导入数据库操作模块
const db = require('../db/index')

exports.codeMd = (req, res) => {
    // 获取客户端提交到服务器的代码块信息
    const userinfo = req.body

    // 定义 SQL 语句，查询代码块名是否被占用
    const sqlStr = 'select * from ev_code_md where name=?'
    db.query(sqlStr, userinfo.name, (err, results) => {
        // 执行 SQL 语句失败
        if (err) {
            return res.cc(err)
        }

        // 判断代码块名是否被占用
        if (!results.length) {
            // 定义插入新代码块的SQL语句
            const sql = 'insert into ev_code_md set ?'
            // 调用 db.query()执行SQL语句
            db.query(sql, { name: userinfo.name, code_data: userinfo.codeData }, (err, results) => {
                if (err) return res.cc(err)
                // 判断影响行数是否为1
                if (results.affectedRows !== 1) return res.cc('新建失败,请稍后再试!')
                // 新增代码块成功
                res.cc('创建成功!', 0)
            })
            return
        }

        const sql = 'update ev_code_md set code_data=? where name=?'
        // 调用 db.query()执行SQL语句
        db.query(sql, [userinfo.codeData, userinfo.name], (err, results) => {
            if (err) return res.cc(err)
            // 判断影响行数是否为1
            if (results.affectedRows !== 1) return res.cc('更新失败,请稍后再试!')
            // 注册代码成功
            res.cc('更新成功!', 0)
        })
    })
}

exports.getCodeMd = (req, res) => {
    // 获取客户端提交到服务器的代码块信息
    const userinfo = req.body

    // 定义 SQL 语句，查询代码块名是否被占用
    const sqlStr = 'select * from ev_code_md where name=?'
    db.query(sqlStr, userinfo.name, (err, results) => {
        // 执行 SQL 语句失败
        if (err) {
            return res.cc(err)
        }
        // 判断查询到的数据是否只有一条
        if (results.length !== 1) return res.cc('查询失败,请稍后再试!')
        res.send({
            status: 0,
            message: '',
            data: {
                codeData: results[0].code_data
            }
        })
    })
}

exports.paging = (req, res) => {
    // 获取客户端提交到服务器的代码块信息
    const userinfo = req.body

    // 定义 SQL 语句，查询paging_demo数据表总数
    const sqlStr = 'select count(*) as total from ev_paging_demo'
    db.query(sqlStr, (err, results) => {
        // 执行SQL语句失败
        if (err) return res.cc(err)
        // 执行SQL语句成功
        const total = JSON.parse(JSON.stringify(results))[0].total
        const current = (userinfo.current - 1) * userinfo.size
        const size = userinfo.size
        const sql = 'select * from ev_paging_demo order by id limit ' + current + ',' + size
        db.query(sql, (err, results) => {
            // 执行SQL语句失败
            if (err) return res.cc(err)
            // 执行SQL语句成功
            res.send({
                status: 0,
                message: '',
                data: {
                    pagingData: results,
                    total: total
                }
            })
        })

    })

}
